package com.zhike.service;

import com.zhike.model.ContractRview;
import com.zhike.model.LabsFlowA;
import com.zhike.model.LbtNumberType;
import com.zhike.model.NewMessage;
import com.zhike.model.Sample;
import com.zhike.model.SceneFlow;
import com.zhike.model.Users;
import com.zhike.model.WorkFlowTask;

public interface LaboratoryService {
	/**
	 * 消息评审详情
	 * @param contractRview
	 * @return
	 */
	String ContractRviewDetail(ContractRview contractRview);
	/**
	 * 编号领取的接口
	 * @param lbtNumberType
	 * @return
	 */
	String numberGet(LbtNumberType lbtNumberType);
	/*
	 *评审消息类型
	 */
	String detectionStructure(LbtNumberType lbtNumberType);
	/**
	 * 部门审核表单提交提交
	 * @param contractRview
	 * @return
	 */
	String reviewSubmit(ContractRview contractRview);
	/**
	 * 领导评审提交
	 * @param contractRview
	 * @return
	 */
	String leadTheReview(ContractRview contractRview);
	/**
	 * 派工详情
	 * @param sceneFlow
	 * @return
	 */
	String SceneFlowDetail(SceneFlow sceneFlow);
	/*8
	 * 通过id比对密码是否正确
	 */
	String passWordContrast(Users users);
	
	/**
	 * 接受派工 或者不接受派工
	 * @param workFlowTask
	 * @return
	 */
	String workOrder(WorkFlowTask workFlowTask);
	/**
	 * 提交报告的  提交审核
	 * @param workFlowTask
	 * @param sceneFlow
	 * @return
	 */
	String auditCommit(WorkFlowTask workFlowTask, SceneFlow sceneFlow);
	/**
	 * 提交报告的审批
	 * @param workFlowTask
	 * @param sceneFlow
	 * @return
	 */
	String approveCommit(WorkFlowTask workFlowTask, SceneFlow sceneFlow);
	/**
	 * 提交报告完成
	 * @param workFlowTask
	 * @return
	 */
	String approveOver(WorkFlowTask workFlowTask);
	/**
	 * 查看项目列表
	 * @param sceneFlow
	 * @return
	 */
	String projectList(SceneFlow sceneFlow);
	/**
	 * 根据派工编号查询详情
	 * @param sceneFlow
	 * @return
	 */
	String workorderSearch(SceneFlow sceneFlow);
	/**
	 * 试验修改到审核
	 * @param sceneFlow
	 * @param workFlowTask
	 * @return
	 */
	String testAudit(SceneFlow sceneFlow, WorkFlowTask workFlowTask);
	/**
	 * 添加样品信息
	 * @param sample
	 * @return
	 */
	String samplesMessAdd(Sample sample);
	/**
	 * 样品列表
	 * @param sample
	 * @return
	 */
	String samplesMessList(Sample sample);
	/**
	 * 委托收样详情
	 * @param labsFlowA
	 * @param workFlowTask 
	 * @return
	 */
	String entrustDetail(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 委托收样完成
	 * @param labsFlowA
	 * @param workFlowTask
	 * @return
	 */
	String entrustFinish(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 试验室收样：选择工程 项目列表
	 * @param labsFlowA
	 * @return
	 */
	String samplesProjetList(LabsFlowA labsFlowA);
	/**
	 * 查询工程详情
	 * @param labsFlowA
	 * @return
	 */
	String samplesProjetSearch(LabsFlowA labsFlowA);
	/**
	 * 提交委托收样
	 * @param labsFlowA
	 * @param workFlowTask 
	 * @return
	 */
	String entrustReceivedCommit(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 实验室 任务指派 详情 工程列表
	 */
	String projetDispatching(LabsFlowA labsFlowA);
	/**
	 * 根据工程名称查询工程详情
	 * @param labsFlowA
	 * @return
	 */
	String projetDispatchingSearch(LabsFlowA labsFlowA);
	/**
	 * 检测任务通知 完成 或者 退回
	 * @param labsFlowA
	 * @param workFlowTask
	 * @return
	 */
	String detectionTaskInform(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 检测通知退回之后 再次提交
	 * @param labsFlowA
	 * @param workFlowTask
	 * @return
	 */
	String detectionTaskCommit(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 项目详情
	 * @param labsFlowA
	 * @return
	 */
	String detectionTaskDetail(LabsFlowA labsFlowA);
	/**
	 * 试验室报告详情
	 * @param labsFlowA
	 * @return
	 */
	String LabReportDetail(LabsFlowA labsFlowA);
	/**
	 * 试验室报告流程：提交审核 或者退回至试验修改
	 * @param labsFlowA
	 * @param workFlowTask
	 * @return
	 */
	String LabReportSubmitOrModify(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 试验室报告流程：提交审批 或者退回至审核
	 * @param labsFlowA
	 * @param workFlowTask
	 * @return
	 */
	String approveSubmitOrModify(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 试验室报告流程：出报告
	 * @param labsFlowA
	 * @param workFlowTask
	 * @return
	 */
	String reportSubmit(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 试验室报告流程：试验修改提交
	 * @param labsFlowA
	 * @param workFlowTask
	 * @return
	 */
	String testTomModify(LabsFlowA labsFlowA, WorkFlowTask workFlowTask);
	/**
	 * 试验修改的工程列表
	 * @param labsFlowA
	 * @param workFlowTask
	 * @return
	 */
	String testTomModifyList(LabsFlowA labsFlowA);
	
	/**
	 * 合同修改的功能
	 * @param workFlowTask
	 * @param contractRview
	 * @return
	 */
	String contractUpdate(WorkFlowTask workFlowTask, ContractRview contractRview);


}
